草庐IT

Java Quartz 作业持久化

全部标签

hadoop - 如何将 Hadoop MapReduce 作业的输出作为值/键而不是键/值返回?

例如,典型的WordCountmapreduce可能会返回如下输出:hello3world4again1我想对输出进行稍微不同的格式化,以便它显示为:3hello4world1again我读过很多想要按值排序的帖子,答案建议在第一个输出上进行第二个mapreduce作业。但是,我不需要按值排序,并且多个键可能具有相同的值——我不希望将它们混为一谈。有没有一种简单的方法可以简单地切换键/值的打印顺序?看起来应该很简单。 最佳答案 按难易程度顺序考虑的两个选项是:在Reduce中切换Key/Value修改reduce的输出以切换键和值。

Hadoop - 有没有办法在作业之间共享自定义计数器?

我正在运行一个MapReduce工作流,该工作流当前包含2个链式MR任务。在第一个任务中,映射器写入自定义计数器。我希望在第二个任务中的reducer的setup()方法中读取这个计数器的值。当我在第二个任务中尝试读取计数器的值时,我得到了0的值。为清楚起见,每个任务都有自己的驱动程序代码,有自己的Configuration和Job。计数器在主驱动程序类中定义为staticenum,它负责链接任务(并启动EMR集群,而不是在单节点集群设置中本地运行工作流).我正在使用Hadoop2.7.3和Java8。 最佳答案 我看到至少3个选项

hadoop - MapReduce 作业无法与启用 Kerberos 的 CDH 集群上的 Hbase 对话

我正在编写一个MapReduce应用程序来访问启用了Kerberos的CDH集群上的Hbase数据。我的CDH版本是5.9.0,运行在3个节点上,Kerberos版本是1.10.1。现在,我面临一个问题,希望有人能提供帮助。我的代码:conf.set("hadoop.security.authentication","Kerberos");UserGroupInformation.setConfiguration(conf);UserGroupInformation.loginUserFromKeytab("jj@example.com","jj.keytab");HTabletabl

amazon-web-services - 我可以像在本地集群上一样在 EMR 上运行作业吗

我已经在我的笔记本电脑上构建了一个本地集群(伪模式)。我在哪里运行不同的mapreduce命令,例如hadoop-streaming-Dmapred.output.compress=true\-Dmapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec\-filesmy_mapper.py,my_reducer.py\-mappermy_mapper.py\-reducermy_reducer.py\-input/aws/input/input_warc.txt\-output/aws/output现

hadoop - 为什么 mapreduce 作业指向本地主机 :8080?

我正在处理MapReduce作业并使用ToolRunner的运行方法执行它。这是我的代码:publicclassMaxTemperatureextendsConfiguredimplementsTool{publicstaticvoidmain(String[]args)throwsException{System.setProperty("hadoop.home.dir","/");intexitCode=ToolRunner.run(newMaxTemperature(),args);System.exit(exitCode);}@Overridepublicintrun(Stri

hadoop - 本地缓存后映射减少占用空间的作业

我正在使用Hortonworks环境进行大数据处理。我观察到,作为来自Hive/Oozie/Pig等的MapReduce作业的一部分,我下面的本地缓存目录正在被填满。它为每个使用jar文件的mapreduce执行创建一个文件夹。/hadoop/yarn/local/usercache/root/filecache直接删除这些文件夹可以吗?有没有我可以设置为自动删除它的配置? 最佳答案 这些目录应该每600000毫秒(10分钟)自动清理一次。或者您可以通过在yarn-site.xml中设置此属性来缩短此时间段,yarn.nodeman

hadoop - 如何为 Titan MR 作业设置 yarn 作业队列

Titan版本是1.0.0无论我尝试过什么,所有yarn应用程序最终都在默认队列中。这些是我试过的东西:1)在titan-hbase-solr.properties中设置属性(以下均无效)mapred.job.queue.name=myqueuemapreduce.job.queue.name=myqueuemapred.mapreduce.job.queue.name=myqueue2)在gremlinshell中设置属性gremlin>graph=TitanFactory.open("/usr/iop/4.2.5.0-0000/titan/conf/titan-hbase-solr

java - 如何将第三方 jar 添加到 mapreduce 作业?

寻找将第三方jar添加到mapreduce作业中的解决方案。目前,我们正在将第三方jar捆绑到mapreduce作业中。似乎有时mapreduce作业jar的大小会变高。有没有另一种方法来克服这个问题 最佳答案 我相信“-libjarsjar1,jar2,...”是您在这里需要的 关于java-如何将第三方jar添加到mapreduce作业?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/quest

hadoop - Mapreduce 作业消耗更多资源和更改队列

我有一个运行超过1.7亿条记录的MapReduce作业。这导致消耗了98%的队列资源和89%的集群资源。管理团队建议他们创建配置有限的新队列,我应该将我的工作推送到该队列中。这里有问题,我有:-1-我怎样才能将我的mapreduce作业(“hadoopjar”)推送到新队列并进行最少的更改?2-由于新创建的队列资源有限,如果队列容量已满怎么办?它会导致长期运行或作业失败吗?3-是否有任何其他最佳方法来防止作业消耗所有资源,如果作业运行时间稍长一点,我们就可以接受。请指教。任何帮助都会很棒。 最佳答案 如果您正在使用容量/公平份额调度

java - Map Reduce - 如何在单个作业中分组和聚合多个属性

我目前在MapReduce方面遇到了一些困难。我有以下数据集:1,John,Computer2,Anne,Computer3,John,Mobile4,Julia,Mobile5,Jack,Mobile6,Jack,TV7,John,Computer8,Jack,TV9,Jack,TV10,Anne,Mobile11,Anne,Computer12,Julia,Mobile现在我想应用带分组的MapReduce和聚合此数据集,以便输出不仅显示哪个人购买某物的次数,以及该人订购最多的产品是什么。所以输出应该是这样的:John3ComputerAnne3MobileJack4TVJulia